# 使用官方Python镜像作为基础镜像
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

# 安装系统依赖
RUN apt-get update && apt-get install -y \
    nmap \
    git \
    gcc \
    make \
    libpcap-dev \
    wget \
    curl \
    && rm -rf /var/lib/apt/lists/*

# 安装masscan
RUN git clone https://github.com/robertdavidgraham/masscan.git /tmp/masscan \
    && cd /tmp/masscan \
    && make \
    && make install \
    && rm -rf /tmp/masscan

# 复制requirements.txt并安装Python依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt \
    && pip install --no-cache-dir pyppeteer

# 复制项目文件（排除venv和其他不需要的文件）
COPY src/ ./src/
COPY application.yaml .
COPY banner.txt .

# 设置Python路径
# 确保src是一个Python包
RUN touch src/__init__.py

# 设置Python路径为项目根目录
ENV PYTHONPATH=/app
ENV FLASK_ENV=production
ENV PYTHONUNBUFFERED=1

# 暴露Flask端口
EXPOSE 28445

# 运行Flask应用
CMD ["python", "src/app.py"]